以下是2017年我参加的阿里面试题,很多没有准备所以都没有答上来,所以在网上查了答案后记在这里。
1.介绍自己
2.Java中Exception都有哪些?
(基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception,具体的RuntimeException继承RuntimeException)
常见异常的类型:
SQLException:操作数据库异常类
ClassCastException:数据类型转换异常
NumberFormatException:字符串转换为数字类型时抛出的异常
NullPointerException
3.Java中学过哪些集合类?
看各自情况了,一共有:Set, List, Map, Queue
4.ArrayList存入大量数据后,需要扩容,怎么做?
随着向ArrayList中不断添加元素,其容量也自动增长。在添加大量元素前,应用程序也可以使用ensureCapacity操作来增加ArrayList实例的容量,这可以减少递增式再分配的数量。
5.HashMap如何扩容?
当HashMap的容量达到threshold时,就需要用ReHash进行扩容。
6.JDK用的哪个版本,我用的8,最新版,就问相对于6和7有什么不一样的,新增了什么?
(首先,JDK是Java语言的软件开发工具包,包括Java的运行环境,Java工具和Java基础的类库)
JDK包含的基本基本组件:
javac – 编译器,将源程序转成字节码
jar – 打包工具,将相关的类文件打包成一个文件
javadoc – 文档生成器,从源码注释中提取文档
jdb – debugger,查错工具
java – 运行编译后的java程序(.class后缀的)
appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
Jconsole: Java进行系统调试和监控的工具
新增了安全属性以配置XML签名安全验证模式;序列化过滤器配置;RMI更好的约束检查;
提高JDK中EC的默认强度 等等。
7.平时使用JDK都用到什么?jar包?
jar包,debugger,java程序,javac
8.数据库事务的性质
ACID:
原子性-事务作为一个整体被执行
一致性
隔离性
持久性:已提交的事务对数据库的修改应永久保存在数据库中
9.了解不了解模型
MVC
哪里用过?
Spring和DAO,hibernate,servlet用过
10.那MVC里ioc是啥?具体聊聊
ioc是控制反转,把复杂系统分解成相互合作的对象,降低解决问题的复杂度,也即:借助于“第三方”实现具有依赖关系的对象之间的解耦。
11.spring你用来做什么?
我是用来做jsp这类网页的
12.那谈谈cookie与session的区别和相同点
Cookie是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。网络服务器用HTTP头向客户端发送cookies,在客服终端,浏览器解析它们并将其保存为一个本地文件。
Session机制采用的是一种在服务器端保持状态的解决方案。session是针对每一个用户的,变量的值保存在服务器上。
2者存取方式不同,cookie中只能保管ASCII字符串,不能直接存取java对象。而session中能存取任何类型的数据,也可直接保管java bean及任何java类、对象等。
隐私策略不同,cookie存储在客户端阅读器中,对客户端是可见的。session存在服务器上,对客户端是透明的,不存在敏感信息泄露的风险。
有效期不同;
服务器压力不同:每个用户都会产生一个session,假如并发访问用户十分多,会产生大量session,耗费大量内存。
浏览器支持不同:假如客户端禁用了cookie或不支持,则会话跟踪会失效。而一切用到session程序的url都要进行url地址重写,否则session会话跟踪还会失效。
跨域支持上不同
13.在实习经历里,最成功的是啥
14.有没有做过什么相关应用?
15.有没有把spring或者其他学到的知识用到生活中,自己做个什么应用之类的?
16.你简历里有unity这类经历,你负责哪个模块?
17.那我想了解一些它是怎么识别人手的动作的呢?
18.Java中有一个Object大类你知道吧,它有哪些功能?
* protected Object clone()
* boolean equals(Object obj)
* protected void finalize()
* Class< > getClass()
* int hashCode()
* void notify()
* void notifyAll()
* String toString()
* void wait()
* void wait(long timeout)
* void wait(long timeout, int nanos)
19.做项目的时候,怎么学习新知识?
20.HashMap有冲突的话怎么办?
1. 如果存在相同的hashcode,那么他们确定的索引位置就相同,这时判断他们的key是否相同,如果不相同,这时就是产生了hash冲突。
2. Hash冲突后,那么HashMap的单个bucket里存储的不是一个 Entry,而是一个 Entry 链
冲突时,hash值相同元素就会用链进行存储。
21.二叉树的前序遍历
根节点-左孩子-右孩子